package dao;

import java.util.ArrayList;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import modele.Poi;
import modele.Province;

import services.persistance.BaseDAO;

public class PoiDao {
	
	
	public static List getListePoi(long idAdmin)
	{
		List liste = new ArrayList<>();
//		liste.add(idAdmin);
//		liste.add("rCegion");
		return BaseDAO.getInstance().getListObject("queryListeNomPOI",liste);

	}
	public static List getPOICommune(long idCommune)
	{
		List liste = new ArrayList<>();
		liste.add(idCommune);
		return BaseDAO.getInstance().getListObject("queryPOICommune",liste);

	}
	
	public static List getPOIRegion(long idRegion)
	{
		List liste = new ArrayList<>();
		liste.add(idRegion);
		return BaseDAO.getInstance().getListObject("queryPOIRegion",liste);

	}

	public static List getPOIProvince(long idProvince)
	{
		List liste = new ArrayList<>();
		liste.add(idProvince);
		return BaseDAO.getInstance().getListObject("queryPOIProvince",liste);

	}
	
	public static void ajouterPoi(Poi poi) {
		BaseDAO.getInstance().ajouter(poi);
	}
	
	public static void supprimerPoi(Poi poi) {
		BaseDAO.getInstance().supprimer(poi);
	}
	
	public static void modifierPoi(Poi poi) {
		BaseDAO.getInstance().modifier(poi);
	}
	
	public static Poi getPoi(long idPoi) {
		return (Poi) BaseDAO.getInstance().getObject(Poi.class, idPoi);
	}

	public static ArrayList<Poi> rechercherPoisParCriteresParAdmin(Poi poi)
	{
		Criteria criteria = BaseDAO.getInstance().getSession().createCriteria(Poi.class);
		criteria.add(Restrictions.like("nom", "%"+ poi.getNom() +"%"));
		criteria.add(Restrictions.like("description", "%"+ poi.getDescription() +"%"));
//		criteria.add(Restrictions.eq("population", region.getPopulation()));
		criteria.createCriteria("administrateur").add(Restrictions.eq("identifiant", poi.getAdministrateur().getIdentifiant()));
		
		return (ArrayList<Poi>) BaseDAO.getInstance().getListObjectByCriteria(criteria);
	}

}
